package router

import (
	"cld-quick-cli/config"
	"cld-quick-cli/router/middlewares"
	"cld-quick-cli/router/modules"
	"fmt"
	"net/http"

	"github.com/gin-gonic/gin"
	"go.uber.org/zap"
)

// CreateServer 做一些配置工作！
func CreateServer() *http.Server {
	router := gin.New()
	gin.SetMode(config.Config.Mode)
	// 注入中间件！ 默认注入 自定的 logger 中间件 recover 中间件！
	router.Use(middlewares.CldLogger(zap.L()), middlewares.CldRecover(zap.L(), true), middlewares.Cors())
	router.Static("/static", config.Config.StaticBaseUrl+config.Config.StaticFileDirPath)
	// 一些路由服务初始化就在这里面！
	modules.UserRouter(router)
	modules.CommunityRouter(router)
	modules.PostRouter(router)
	modules.FilesRouter(router)
	server := &http.Server{
		Addr:    fmt.Sprintf(":%v", config.Config.App.Port),
		Handler: router,
	}
	return server
}
